package com.ljf.utility.model;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.ljf.common.model.BasisModel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;

/**
 * 编译参数表对象  utility_dat_compile_parameter
 *
 * @author LJF
 * @since 2025-08-30
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel("编译参数表")
@EqualsAndHashCode(callSuper = true)
@TableName("utility_dat_compile_parameter")
public class UtilityDatCompileParameter extends BasisModel {

	private static final long serialVersionUID = 1L;

	/**
	 * Java类型: Long
	 * 数据库类型: bigint
	 * 注释: ID
	 * {@link UtilityDatCompileParameter#COL_ID}
	 */
	@JsonProperty("id")
	@ApiModelProperty(value = "ID")
	@TableId(value="id", type= IdType.AUTO)
	private Long id;

	/**
	 * Java类型: String
	 * 数据库类型: char(9)
	 * 注释: 编码
	 * {@link UtilityDatCompileParameter#COL_CODE}
	 */
	@TableField("code")
	@JsonProperty("code")
	@ApiModelProperty(value = "编码")
	private String code;

	/**
	 * Java类型: String
	 * 数据库类型: varchar(20)
	 * 注释: 名称
	 * {@link UtilityDatCompileParameter#COL_NAME}
	 */
	@TableField("name")
	@JsonProperty("name")
	@ApiModelProperty(value = "名称")
	private String name;

	/**
	 * Java类型: Integer
	 * 数据库类型: tinyint
	 * 注释: 类型(1:输入;2:输出)
	 * {@link UtilityDatCompileParameter#COL_TYPE}
	 * {@link com.ljf.utility.enums.UtilityDatCompileParameterTypeEnum}
	 */
	@TableField("type")
	@JsonProperty("type")
	@ApiModelProperty(value = "类型")
	private Integer type;

	/**
	 * Java类型: Integer
	 * 数据库类型: smallint unsigned
	 * 注释: 排序
	 * {@link UtilityDatCompileParameter#COL_SORT}
	 */
	@TableField("sort")
	@JsonProperty("sort")
	@ApiModelProperty(value = "排序")
	private Integer sort;

	/**
	 * Java类型: Integer
	 * 数据库类型: tinyint
	 * 注释: 展示元素(1:单行文本;2:多行文本;3:单行数字;4:Word文件;5:Excel文件;6:PDF文件)
	 * {@link UtilityDatCompileParameter#COL_DISPLAY_ELEMENT}
	 * {@link com.ljf.utility.enums.UtilityDatCompileParameterDisplayElementEnum}
	 */
	@TableField("display_element")
	@JsonProperty("displayElement")
	@ApiModelProperty(value = "展示元素")
	private Integer displayElement;

	/**
	 * Java类型: String
	 * 数据库类型: varchar(50)
	 * 注释: 限制
	 * {@link UtilityDatCompileParameter#COL_LIMIT}
	 */
	@TableField("limit")
	@JsonProperty("limit")
	@ApiModelProperty(value = "限制")
	private String limit;


	/**
	 * ID
	 * {@link UtilityDatCompileParameter#id}
	 */
	public static final String COL_ID = "id";
	/**
	 * 编码
	 * {@link UtilityDatCompileParameter#code}
	 */
	public static final String COL_CODE = "code";
	/**
	 * 名称
	 * {@link UtilityDatCompileParameter#name}
	 */
	public static final String COL_NAME = "name";
	/**
	 * 类型(1:输入;2:输出)
	 * {@link UtilityDatCompileParameter#type}
	 */
	public static final String COL_TYPE = "type";
	/**
	 * 排序
	 * {@link UtilityDatCompileParameter#sort}
	 */
	public static final String COL_SORT = "sort";
	/**
	 * 展示元素(1:单行文本;2:多行文本;3:单行数字;4:Word文件;5:Excel文件;6:PDF文件)
	 * {@link UtilityDatCompileParameter#displayElement}
	 */
	public static final String COL_DISPLAY_ELEMENT = "display_element";
	/**
	 * 限制
	 * {@link UtilityDatCompileParameter#limit}
	 */
	public static final String COL_LIMIT = "limit";

}
